/*
*			Í¼Ïñ´¦ÀíÏß³Ì
*/


#include "CxThread.h"
#include "CxType.h"
#include <boost/signals2.hpp>
#include "CxLinerBuffer.h"
#include "CxImgProc.h"


class CxImgProcThread		: public	CxThread
{
	typedef DataRevPart::CxLinerBuffer			_Buffer;
	typedef boost::mutex						_Mutex;
	typedef boost::condition_variable_any		_Cond;

	typedef boost::function<void(const Mat&)>			_ShowFunc;
	typedef boost::function<void(int ,int )>			_ShowCountFunc;
	typedef boost::signals2::signal<void(const Mat &)>	_SigShow;
	typedef boost::signals2::signal<void(int ,int )>	_SigShowCount;

public:
	CxImgProcThread(IplImage *back,_ShowFunc ,_ShowCountFunc );
	~CxImgProcThread();

public:
	//ÔÝÎ´ÊµÏÖ
	void		Start(){CX_NO_IMP;}
	void		Close(){CX_NO_IMP;}
	UINT		GetState()const{return m_state;}

	_Buffer		&GetBuffer(){return m_buffer;}

protected:
	void		RunFunc();


	_SigShow		sig_showimage;
	_SigShowCount	sig_showcount;

private:
	bool					m_spin;
	ImgProcPart::CxImgProc	*m_proc;
	_Buffer					m_buffer;

};
